\documentclass[a4paper,10pt,draft,oneside,titlepage]{article}

\usepackage[utf-8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[dvips]{graphicx}
\usepackage{fancyhdr}

\fancyhf{}
\headheight=16pt
\renewcommand{\headrulewidth}{0.1pt}
\rhead{Rapport de travail}
\chead{\textsc{Projet 2}}
\lhead{I-CH 103}
\lfoot{Andrea Blankenstijn}
\cfoot{\today}
\rfoot{\textbf{\thepage}}
\pagestyle{fancy}

\author{Andrea Blankenstijn}
\title{Rapport de travail du projet 2 :\\Détermination d'une année bissextile\\(I-CH 103)}
\date{\today}

\begin{document}
\maketitle
%% Intro
\begin{abstract}
\thispagestyle{fancy}
  Dans ce projet il a été question de créer un programme permettant de déterminé si une année entrée par l'utilisateur est bissextile ou non.
  Rappelons qu'une année pour être bissextile doit répondre aux règles suivantes :
  \begin{itemize}
    \item être divisible par 4
    \item ne pas être divisible par 100 – ou – être divisible par 100 \textbf{ET} 400.
  \end{itemize}
\end{abstract}

\section{Séquentiel}
  \begin{enumerate}
    \item permettre l'entrée d'une année par l'utilisateur avec \texttt{scanf}.
    \item définir le traitement conditionnel suivant les règles de bissextilités.
    \item affichage d'un message selon le résultat du test.
    \item établire un contrôle de la validité des données entrées.
  \end{enumerate}


\section{Réalisation}
  \subsection{Récupération des données}
  On déclare une variable \texttt{integer} et stock la valeur entrée par l'utilisateur. On vérifie la valeur de retour de la fonction \texttt{scanf}, si elle retourne \textit{0} c'est qu'il y'a une erreur et nous affichons un message en conséquence et quittons avec une valeur de retour de \textit{1} le programme :
  \begin{verbatim}
    int annee;

    printf("Entrez une annee : ");
    scanf("%d", &annee);
  \end{verbatim}
  \subsection{Traitement conditionnel}
  Puis on test notre variable avec les conditions expliquées plus haut pour vérifier si l'année traitée répond aux différentes règles ou non :
  \begin{verbatim}
    if(annee % 4 == 0 && annee % 100 != 0 || annee % 400 == 0);
  \end{verbatim}
  \subsection{Message de résultat}
  Si cette condition est vraie, l'année est bissextile et donc nous pouvons afficher un message comme celui-ci :
  \begin{verbatim}
    printf("L'annee %d est bissextile.", annee);
  \end{verbatim}
  \newpage
  Sinon, c'est qu'elle ne l'est pas, est nous affichons un message en conséquence :
  \begin{verbatim}
    else
      printf("L'annee %d n'est pas bissextile.", annee);
  \end{verbatim}
  \subsection{Vérification de la validité des données}
  Modifions maintenant la partie de récupération des données afin d'ajouter un test pour vérifier qu'elles soient valides :
  \begin{verbatim}
    if( !scanf("%d", &annee) )
    {
      /*
      Nous utilisons fprintf pour écrire le message d'erreur
      dans stderr, le flux d'erreur standard, plutôt que printf
      qui envois uniquement sur stdout, la sortie standard.
      */
      fprintf(stderr, "\nVotre entree n'est pas valide !\n")
    }
  \end{verbatim}


\section{Conclusion}
  Ce deuxième projet m'a semblé bien plus simple que le premier concernant le calcule de la date de Pâques. Il me serait difficile d’imaginer de réelles améliorations pour ce projet, parcontre il pourrait être réutilisé dans d'autre projet. Beaucoup de personnes négligent qu'une année bissextile n'est pas simplement une année multiple de 4.
\end{document}
